package com.yc.cloud.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yc.cloud.common.orm.BaseEntity;

import java.time.LocalDateTime;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * <p>
 * 硬件设备表 (AI盒子)
 * </p>
 *
 * @author kinggu
 * @since 2025-07-15
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("hw_device")
public class HwDevice extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 设备名称
     */
    @TableField("name")
    private String name;

    /**
     * 设备序列号 (SN)
     */
    @TableField("device_sn")
    private String deviceSn;

    /**
     * 安装位置
     */
    @TableField("location")
    private String location;

    /**
     * 设备类型：1-边缘设备(rv1126), 2-服务器
     */
    @TableField("device_type")
    private Integer deviceType;

    /**
     * 设备IP地址
     */
    @TableField("device_ip")
    private String deviceIp;

    /**
     * 设备在线状态：0-离线, 1-在线, 2-故障
     */
    @TableField("status")
    private Integer status;

    /**
     * 所属分组ID
     */
    @TableField("group_id")
    private Long groupId;

    /**
     * 备注信息
     */
    @TableField("description")
    private String description;

    /**
     * 逻辑删除标志 0-未删除 1-已删除
     */
    @TableField("is_deleted")
    private Boolean deleted;

    /**
     * 是否置顶
     */
    @TableField("is_pinned")
    private Boolean pinned;

    /**
     * 置顶时间
     */
    @TableField("pinned_time")
    private LocalDateTime pinnedTime;

    /**
     * 版本名称
     */
    @TableField("version_name")
    private String versionName;

    /**
     * 版本号
     */
    @TableField("version_number")
    private Integer versionNumber;


    public static final String Name = "name";
    public static final String DeviceSn = "device_sn";
    public static final String Location = "location";
    public static final String DeviceType = "device_type";
    public static final String DeviceIp = "device_ip";
    public static final String Status = "status";
    public static final String GroupId = "group_id";
    public static final String Description = "description";
    public static final String Deleted = "is_deleted";
    public static final String IsPinned = "is_pinned";
    public static final String PinnedTime = "pinned_time";
    public static final String VersionName = "version_name";
    public static final String VersionNumber = "version_number";

} 